package com.akuhome.resource.dao;

import com.akuhome.resource.DO.need.*;
import com.akuhome.resource.entity.Classroom;
import com.akuhome.resource.enums.NeedStatus;
import com.akuhome.resource.enums.NeedType;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Repository
public interface NeedDao {
    AccNeed findAccNeedById(Integer id);
    AccNeed findAccNeedByProjectUid(String uid);
    List<AccNeedDetail> findAccNeedDetailInDate(Date date);
    List<AccNeedDetail> findAccNeedDetailByAccNeedId(Integer id);
    void insertAccNeedDetails(Map<String,Object> insertMap);
    void insertAccNeed(AccNeed accNeed);
    void updateAccNeed(AccNeed accNeed);
    void updateAccNeedDetails(Map<String,Object> updateMap);
    void updateAccNeedStatusByProjectUId(String uid, NeedStatus status);
    void deleteAccNeedDetails(List<AccNeedDetail> detailList);

    ClassroomNeed findClassroomNeedByProjectUid(String uid);
    List<ClassroomNeedDetail> findClsNeedDetailByClsNeedId(Integer id);
    void insertClassroomNeed(ClassroomNeed classroomNeed);
    void insertClassroomNeedDetails(Map<String,Object> insertMap);
    void updateClassroomNeed(ClassroomNeed classroomNeed);
    void updateClassroomNeedDetails(Map<String,Object> updateMap);
    void updateClassroomNeedStatusByProjectUId(String uid, NeedStatus status);
    void deleteClassroomNeedDetails(List<ClassroomNeedDetail> detailList);

    FoodNeed findFoodNeedByProjectUid(String uid);
    List<FoodNeedDetail> findFoodNeedDetailByFoodNeedId(Integer id);
    void insertFoodNeed(FoodNeed foodNeed);
    void insertFoodNeedDetails(Map<String,Object> insertMap);
    void updateFoodNeed(FoodNeed foodNeed);
    void updateFoodNeedDetails(Map<String,Object> updateMap);
    void updateFoodNeedStatusByProjectUId(String uid, NeedStatus status);
}
